// pages/groupDetail/groupDetail.js
const app = getApp();
import { groupdetail, groupmore } from '../../config/https.js';
import { u_formatTimestamp } from '../../config/tool.js';
import { seckill } from '../../utils/util.js';
var WxParse = require('../../wxParse/wxParse.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    needLoad: true, // 需要加载
    id: '', // 拼团id
    goodsId: '', // 商品id
    group_id: '', // 要参与的拼团id
    goodsType: 0, //商品类型 0正常商品 1两人团商品 2秒杀 3砍价
    isStandard: false,//保障信息弹框
    isParams: false,// 产品参数弹框
    showNumsAdd: false, // 显示单规格弹窗
    isOptions: false, // 显示多规格弹窗
    goodsInfo: '', // 商品数据
    specInfo: '', // 规格信息
    specList: '', // 规格列表
    selectSpecId: '', // 选中规格id
    buyNum: 1, // 购买数量
    chooseType: 0, // 1立即购买 2开团
    specName: '', // 规格名称
    showRule: false, // 是否展示规则弹窗
    showList: false, // 是否展示拼团列表弹窗
    showJoin: false, // 是否展示参团弹窗
    showShadow: false, // 展示遮罩层
    joinData: "", // 要参与的拼团数据
    moreList: [], // 更多拼团列表
    buyList: [], // 已购买用户列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      id: options.id,
      goodsId: options.goodsId
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if (this.data.needLoad) {
      this.initData();
      this.getData();
    }
  },

  // 获取数据
  getData(){
    app.loading();
    let that = this;
    groupdetail({
      id: this.data.id,
      goods_id: this.data.goodsId
    }).then(res =>{
      wx.hideLoading();
      if(res.code == 1){
        let info = res.data.info.content;
        WxParse.wxParse('detailinfo', 'html', info, that, 5);

        if (res.data.comment) {
          res.data.comment.add_time = u_formatTimestamp(res.data.comment.add_time * 1000, 'ymd')
        }

        if(res.data.list.length > 0){
          that.cutDown(res.data.list,res.data.list);
          res.data.list.forEach((item) =>{
            item.oldmiao = item.miao
          })

        }

        this.setData({
          goodsInfo: res.data.info,
          list: res.data.list,
          buyList: res.data.buyList,
        })
      }else{
        app.$tip(res.msg);
        setTimeout(() => {
          wx.switchTab({
            url: '/pages/home/home',
          })
        }, 1500)
      }
    })
  },

  // 格式化数据
  initData() {
    this.setData({
      needLoad: true, // 需要加载
      group_id: '', // 要参与的拼图id
      goodsType: 0, //商品类型 0正常商品 1两人团商品 2秒杀 3砍价
      isStandard: false,//保障信息弹框
      isParams: false,// 产品参数弹框
      showNumsAdd: false, // 显示单规格弹窗
      isOptions: false, // 显示多规格弹窗
      goodsInfo: '', // 商品数据
      specInfo: '', // 规格信息
      specList: '', // 规格列表
      selectSpecId: '', // 选中规格id
      buyNum: 1, // 购买数量
      chooseType: 0, // 1立即购买 2开团
      specName: '', // 规格名称
      showRule: false, // 是否展示规则弹窗
      showList: false, // 是否展示拼团列表弹窗
      showJoin: false, // 是否展示参团弹窗
      showShadow: false, // 展示遮罩层
      joinData: "", // 要参与的拼团数据
      moreList: [], // 更多拼团列表
    })
  },

  // 倒计时 
  cutDown(arr,old){
    let that = this;
    let timmer = setInterval(() => {
      old.forEach((item,index) =>{
        if (item.oldmiao > 0) {
          item.oldmiao--;
          item.miao = item.oldmiao;
          arr[index].miao = seckill(item.miao);
        } else {
          clearInterval(timmer);
        }
      })
      that.setData({
        list: arr
      })
    }, 1000)
    this.setData({
      timmer: timmer
    })
    
  },

  // 展示服务
  showService() {
    this.setData({
      isStandard: !this.data.isStandard
    })
  },

  // 展示参数
  showDetails() {
    this.setData({
      isParams: !this.data.isParams
    })
  },

  // 显示规格弹窗
  // 根据type值不同切换 1立即购买 2开团
  // 根据this.data.goodsInfo.spec_type值不同判断规格 10单规格 20多规格
  showSpec(e) {
    // 未登录
    if (!app.globalData.userId) {
      wx.showModal({
        title: '温馨提示',
        content: '您还未登录,请先登录!',
        confirmText: '去登录',
        confirmColor: '#57b127',
        success(res) {
          if (res.confirm) {
            wx.navigateTo({
              url: '/pages/wxLogin/wxLogin',
            })
          } else if (res.cancel) {

          }
        }
      })
      return
    }
    let type = e.currentTarget.dataset.type, that = this;
    this.setData({
      chooseType: type
    })

    // 判断上下架状态
    if (this.data.goodsInfo.goods_status == 20){
      app.$tip('该商品已下架！');
      return
    }

    // 判断库存
    if (this.data.goodsInfo.stock_num < 1){
      app.$tip('商品库存不足！');
      return
    }

    // 单规格
    if (this.data.goodsInfo.spec_type == 10) {
        that.setData({
          showNumsAdd: true
        })
    }
    // 多规格 请求规格数据 展示规格选择弹窗
    if (this.data.goodsInfo.spec_type == 20) {
      app.loading();
      wx.request({
        url: app.baseURL + 'item/getGoodsSpec',
        data: {
          goods_id: that.data.goodsId
        },
        success(data) {
          let res = data.data;
          wx.hideLoading();
          if (res.code == 1) {
            let arr = [];
            res.data.info.item_sku.forEach((item) => {
              // item.specId = '';
              item.specId = item.sub[0].id;
              arr.push(item.sub[0].id);
            })
            that.setData({
              // specInfo: res.data.info,
              specList: res.data.info.item_sku,
              isOptions: true
            })
            that.getSpecInfo(arr.join('_'))
          } else {
            app.$tip(res.msg);
          }
        }
      })
    }
  },

  // 选择规格
  choose(e) {
    let arr = [];
    // 父集下标
    let findex = e.currentTarget.dataset.findex;
    let old = this.data.specList;
    // 改变当前规格选中的规格id
    old[findex].specId = e.currentTarget.dataset.id;
    this.setData({
      specList: old
    })
    this.data.specList.forEach((item) => {
      if (item.specId) {
        arr.push(item.specId)
      }
    })
    this.getSpecInfo(arr.join('_'))
  },

  // 获取选中的规格的信息
  getSpecInfo(id) {
    let that = this;
    wx.request({
      url: app.baseURL + 'item/getItemSku',
      data: {
        goods_id: that.data.goodsId,
        sku_id: id
      },
      success(data) {
        let res = data.data;
        if (res.code == 1) {
          that.setData({
            specInfo: res.data,
            selectSpecId: res.data.goods_spec_id
          })
        } else {
          app.$tip(res.msg);
        }
      }
    })
  },

  // 数量变化
  // 加
  addNums() {
    // 判断库存
    if (Number(this.data.buyNum) <= Number(this.data.specInfo.stock_num)) {
      this.setData({
        buyNum: Number(this.data.buyNum) + 1
      })
    } else {
      app.$tip('不能大于库存!');
    }
  },
  // 减
  cutNums() {
    if (Number(this.data.buyNum) > 1) {
      this.setData({
        buyNum: Number(this.data.buyNum) - 1
      })
    } else {
      app.$tip('最少购买一件!');
    }
  },

  // 单规格
  addNumber() {
    // 判断库存
    if (Number(this.data.buyNum) < Number(this.data.goodsInfo.stock_num)) {
      this.setData({
        buyNum: Number(this.data.buyNum) + 1
      })
    } else {
      app.$tip('不能大于库存!');
    }
  },

  // 去确认订单页
  toPlaceorder() {
    let that = this;
    if (this.data.goodsInfo.spec_type == 20 && !this.data.selectSpecId) {
      app.$tip('请选择规格!');
      return
    }
    // 立即购买
    if (this.data.chooseType == 1) {
      let paramsInfo = {
        goods_id: this.data.goodsId,
        goods_spec_id: that.data.goodsInfo.spec_type == 20 ? this.data.selectSpecId : that.data.goodsInfo.goods_spec_id,
        num: this.data.buyNum,
        type: 5, // 1正常商品 2限时抢购 4两人团购 5团购单独1购买
        is_status: 1, // 1配送商品 2自提商品
        marketing_id: that.data.goodsInfo.activity_id, // 活动id
        group_id: that.data.group_id ? that.data.group_id : that.data.goodsInfo.group_id, // 参与的拼团id
      }
      wx.navigateTo({
        url: '/pages/confirm_order/confirm_order?data=' + JSON.stringify(paramsInfo) + '&from=detail',
      })
    };
    // 开团
    if (this.data.chooseType == 2) {
      let paramsInfo = {
        goods_id: this.data.goodsId,
        goods_spec_id: that.data.goodsInfo.spec_type == 20 ? this.data.selectSpecId : that.data.goodsInfo.goods_spec_id,
        num: this.data.buyNum,
        type: 4, // 1正常商品 2限时抢购 4两人团购 5团购单独1购买
        is_status: 1, // 1配送商品 2自提商品
        marketing_id: that.data.goodsInfo.activity_id, // 活动id
        group_id: that.data.group_id ? that.data.group_id : that.data.goodsInfo.group_id, // 参与的拼团id
      }
      wx.navigateTo({
        url: '/pages/confirm_order/confirm_order?data=' + JSON.stringify(paramsInfo) + '&from=detail',
      })
    };
  },

  // 关闭弹窗
  closeBuy() {
    this.setData({
      isOptions: false,
      showNumsAdd: false
    })
  },

  // 展示规则
  lookRule(){
    this.setData({
      showRule: true,
      showShadow: true
    })
  },

  // 展示拼团列表
  lookMore(){
    app.loading();
    let that = this;
    groupmore({
      goods_id: this.data.goodsId,
      activity_id: this.data.goodsInfo.activity_id,
      token: app.globalData.userId
    }).then(res =>{
      wx.hideLoading();
      if(res.code == 1){
        that.setData({
          showList: true,
          showShadow: true,
          moreList: res.data.list
        })
      }else{
        app.$tip(res.msg);
      }
    })
    
  },

  // 去参团按钮
  toJoin(e){
    let joinItem = e.currentTarget.dataset.item, that = this;
    this.setData({
      showList: false,
      showShadow: true,
      showJoin: true,
      joinData: joinItem
    })
  },

  // 参与拼团
  joinThis(e){
    this.setData({
      group_id: e.currentTarget.dataset.groupid,
      chooseType: 2,
    })
    this.toPlaceorder();
  },

  // 关闭规则弹窗
  closeShadow(){
    this.setData({
      showShadow: false,
      showRule: false,
      showList: false,
      showJoin: false
    })
  },

  // 去首页
  toIndex() {
    wx.switchTab({
      url: '/pages/home/home',
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    clearInterval(this.data.timmer);
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearInterval(this.data.timmer);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})